home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / Displays.p < prev    next >
Text File  |  1995-09-14  |  22KB  |  588 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 5:54:12 PM }
  2. {}
  3. {     File:        Displays.p}
  4. { }
  5. {     Contains:    Display Manager Interfaces.}
  6. { }
  7. {     Version:    Technology:    System 7.5}
  8. {                 Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18}
  9. { }
  10. {     Copyright:    © 1984-1995 by Apple Computer, Inc.}
  11. {                 All rights reserved.}
  12. { }
  13. {     Bugs?:        If you find a problem with this file, use the Apple Bug Reporter}
  14. {                 stack.  Include the file and version information (from above)}
  15. {                 in the problem description and send to:}
  16. {                     Internet:    apple.bugs@applelink.apple.com}
  17. {                     AppleLink:    APPLE.BUGS}
  18. { }
  19. {}
  20.  
  21. unit Displays;
  22. interface
  23.  
  24.  
  25. {$IFC UNDEFINED __DISPLAYS__}
  26. {$SETC __DISPLAYS__ := 1}
  27.  
  28.     uses
  29.         ConditionalMacros, Types, Components, Video, Quickdraw, Notification, AppleTalk, Processes, PPCToolbox, EPPC, Files, Aliases, AppleEvents, Controls, Windows, Events, Processes, Dialogs;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.  
  35.     const
  36. { AppleEvents Core Suite }
  37.         kAESystemConfigNotice = 'cnfg';
  38. { Core Suite types }
  39.         kAEDisplayNotice = 'dspl';
  40.         kAEDisplaySummary = 'dsum';
  41.         keyDMConfigVersion = 'dmcv';
  42.         keyDMConfigFlags = 'dmcf';
  43.         keyDMConfigReserved = 'dmcr';
  44.         keyDisplayID = 'dmid';
  45.         keyDisplayComponent = 'dmdc';
  46.         keyDisplayDevice = 'dmdd';
  47.         keyDisplayFlags = 'dmdf';
  48.         keyDisplayMode = 'dmdm';
  49.         keyDisplayModeReserved = 'dmmr';
  50.         keyDisplayReserved = 'dmdr';
  51.         keyDisplayMirroredId = 'dmmi';
  52.         keyDeviceFlags = 'dddf';
  53.         keyDeviceDepthMode = 'dddm';
  54.         keyDeviceRect = 'dddr';
  55.         keyPixMapRect = 'dpdr';
  56.         keyPixMapHResolution = 'dphr';
  57.         keyPixMapVResolution = 'dpvr';
  58.         keyPixMapPixelType = 'dppt';
  59.         keyPixMapPixelSize = 'dpps';
  60.         keyPixMapCmpCount = 'dpcc';
  61.         keyPixMapCmpSize = 'dpcs';
  62.         keyPixMapAlignment = 'dppa';
  63.         keyPixMapResReserved = 'dprr';
  64.         keyPixMapReserved = 'dppr';
  65.         keyPixMapColorTableSeed = 'dpct';
  66.         keySummaryMenubar = 'dsmb';
  67.         keySummaryChanges = 'dsch';
  68.         keyDisplayOldConfig = 'dold';
  69.         keyDisplayNewConfig = 'dnew';
  70.  
  71.         dmOnlyActiveDisplays = true;
  72.         dmAllDisplays = false;
  73.  
  74. { Switch Flags }
  75.         kNoSwitchConfirmBit = 0;                            { Flag indicating that there is no need to confirm a switch to this mode }
  76.         kDepthNotAvailableBit = 1;                            { Current depth not available in new mode }
  77.         kShowModeBit = 3;                            { Show this mode even though it requires a confirm. }
  78.         kModeNotResizeBit = 4;                            { Do not use this mode to resize display (for cards that mode drives a different connector). }
  79.  
  80. {    Summary Change Flags (sticky bits indicating an operation was performed)}
  81. {    For example, moving a display then moving it back will still set the kMovedDisplayBit.}
  82. {}
  83.         kBeginEndConfigureBit = 0;
  84.         kMovedDisplayBit = 1;
  85.         kSetMainDisplayBit = 2;
  86.         kSetDisplayModeBit = 3;
  87.         kAddDisplayBit = 4;
  88.         kRemoveDisplayBit = 5;
  89.         kNewDisplayBit = 6;
  90.         kDisposeDisplayBit = 7;
  91.         kEnabledDisplayBit = 8;
  92.         kDisabledDisplayBit = 9;
  93.         kMirrorDisplayBit = 10;
  94.         kUnMirrorDisplayBit = 11;
  95.  
  96. { Notification Messages for extended call back routines }
  97.         kDMNotifyInstalled = 1;                            { At install time }
  98.         kDMNotifyEvent = 2;                            { Post change time }
  99.         kDMNotifyRemoved = 3;                            { At remove time }
  100.         kDMNotifyPrep = 4;                            { Pre change time }
  101.         kDMNotifyExtendEvent = 5;                            { Allow registrees to extend apple event before it is sent }
  102.         kDMNotifyDependents = 6;                            { Minor notification check without full update }
  103. { Notification Flags }
  104.         kExtendedNotificationProc = $10000;
  105.  
  106. { types for notifyType }
  107.         kFullNotify = 0;                            { This is the appleevent whole nine yards notify }
  108.         kFullDependencyNotify = 1;                            { Only sends to those who want to know about interrelated functionality (used for updating UI) }
  109.  
  110. { DisplayID/DeviceID constants }
  111.         kDummyDeviceID = $0FF;                            { This is the ID of the dummy display, used when the last “real” display is disabled.}
  112.         kInvalidDisplayID = $000;                            { This is the invalid ID}
  113.         kFirstDisplayID = $100;
  114.  
  115. { bits for panelListFlags }
  116.         kAllowDuplicatesBit = 0;
  117.  
  118. { Constants for fidelity checks }
  119.         kNoFidelity = 0;
  120.         kMinimumFidelity = 1;
  121.         kDefaultFidelity = 500;                            { I'm just picking a number for Apple default panels and engines}
  122.         kDefaultManufacturerFidelity = 1000;                        { I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)}
  123.  
  124.         kAnyPanelType = 0;                            { Pass to DMNewEngineList for list of all panels (as opposed to specific types)}
  125.         kAnyEngineType = 0;                            { Pass to DMNewEngineList for list of all engines}
  126.         kAnyDeviceType = 0;                            { Pass to DMNewDeviceList for list of all devices}
  127.         kAnyPortType = 0;                            { Pass to DMNewDevicePortList for list of all devices}
  128.  
  129. { portListFlags for DM_NewDevicePortList }
  130. { Should offline devices be put into the port list (such as dummy display) }
  131.         kPLIncludeOfflineDevicesBit = 0;
  132.  
  133.  
  134.     type
  135.         DMFidelityType = LONGINT;
  136.  
  137. { AVID is an ID for ports and devices the old DisplayID type}
  138. {    is carried on for compatibility}
  139. {}
  140.         AVIDType = LONGINT;
  141.  
  142.         DisplayIDType = AVIDType;
  143.  
  144.         DMListType = Ptr;
  145.  
  146.         DMListIndexType = LONGINT;
  147.  
  148.         AVPowerStatePtr = Ptr;
  149.  
  150.         DMComponentListEntryRec = record
  151.                 itemID: DisplayIDType;                            { DisplayID Manager}
  152.                 itemComponent: Component;                                { Component Manager}
  153.                 itemDescription: ComponentDescription;                    { We can always construct this if we use something beyond the compontent mgr.}
  154.                 itemClass: ResType;                                { Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)}
  155.                 itemFidelity: DMFidelityType;                            { How good is this item for the specified search?}
  156.                 itemSubClass: ResType;                                { Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)}
  157.                 itemSort: Point;                                    { Set to 0 - future to sort the items in a sub group.}
  158.                 itemFlags: LONGINT;                                { Set to 0 (future expansion)}
  159.                 itemReserved: ResType;                                { What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)}
  160.                 itemFuture1: LONGINT;                                { Set to 0 (future expansion - probably an alternate code style)}
  161.                 itemFuture2: LONGINT;                                { Set to 0 (future expansion - probably an alternate code style)}
  162.                 itemFuture3: LONGINT;                                { Set to 0 (future expansion - probably an alternate code style)}
  163.                 itemFuture4: LONGINT;                                { Set to 0 (future expansion - probably an alternate code style)}
  164.             end;
  165.  
  166.         DMComponentListEntryPtr = ^DMComponentListEntryRec;
  167.  
  168. { ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created}
  169.         AVLocationRec = record
  170.                 locationConstant: LONGINT;                                { Set to 0 (future expansion - probably an alternate code style)}
  171.             end;
  172.  
  173.         AVLocationPtr = ^AVLocationRec;
  174.  
  175.         DMDepthInfoRec = record
  176.                 depthSwitchInfo: VDSwitchInfoPtr;                        { This is the switch mode to choose this timing/depth }
  177.                 depthVPBlock: VPBlockPtr;                                { VPBlock (including size, depth and format) }
  178.                 depthFlags: LONGINT;                                { Reserved }
  179.                 depthReserved1: LONGINT;                                { Reserved }
  180.                 depthReserved2: LONGINT;                                { Reserved }
  181.             end;
  182.  
  183.         DMDepthInfoPtr = ^DMDepthInfoRec;
  184.  
  185.         DMDepthInfoBlockRec = record
  186.                 depthBlockCount: LONGINT;                                { How many depths are there? }
  187.                 depthVPBlock: DMDepthInfoPtr;                            { Array of DMDepthInfoRec }
  188.                 depthBlockFlags: LONGINT;                                { Reserved }
  189.                 depthBlockReserved1: LONGINT;                                { Reserved }
  190.                 depthBlockReserved2: LONGINT;                                { Reserved }
  191.             end;
  192.  
  193.         DMDepthInfoBlockPtr = ^DMDepthInfoBlockRec;
  194.  
  195.         DMDisplayModeListEntryRec = record
  196.                 displayModeFlags: LONGINT;
  197.                 displayModeSwitchInfo: VDSwitchInfoPtr;
  198.                 displayModeResolutionInfo: Ptr;
  199.                 displayModeTimingInfo: VDTimingInfoPtr;
  200.                 displayModeDepthBlockInfo: DMDepthInfoBlockPtr;                    { Information about all the depths}
  201.                 displayModeReserved: Ptr;                                    { Reserved}
  202.                 displayModeName: ^Str255;                                { Name of the timing mode}
  203.             end;
  204.  
  205.         DMDisplayModeListEntryPtr = ^DMDisplayModeListEntryRec;
  206.  
  207.         DependentNotifyRec = record
  208.                 notifyType: ResType;                                { What type was the engine that made the change (may be zero)}
  209.                 notifyClass: ResType;                                { What class was the change (eg geometry, color etc)}
  210.                 notifyPortID: DisplayIDType;                            { Which device was touched (kInvalidDisplayID -> all or none)}
  211.                 notifyComponent: ComponentInstance;                        { What engine did it (may be 0)?}
  212.                 notifyVersion: LONGINT;                                { Set to 0 (future expansion)}
  213.                 notifyFlags: LONGINT;                                { Set to 0 (future expansion)}
  214.                 notifyReserved: LONGINT;                                { Set to 0 (future expansion)}
  215.                 notifyFuture: LONGINT;                                { Set to 0 (future expansion)}
  216.             end;
  217.  
  218.         DependentNotifyPtr = ^DependentNotifyRec;
  219.  
  220. { Exports to support Interfaces library containing unused calls }
  221.         DMNotificationProcPtr = ProcPtr;  { PROCEDURE DMNotification(VAR theEvent: AppleEvent); }
  222.         DMExtendedNotificationProcPtr = ProcPtr;  { PROCEDURE DMExtendedNotification(userData: UNIV Ptr; theMessage: INTEGER; notifyData: UNIV Ptr); }
  223.         DMComponentListIteratorProcPtr = ProcPtr;  { PROCEDURE DMComponentListIterator(userData: UNIV Ptr; itemIndex: DMListIndexType; componentInfo: DMComponentListEntryPtr); }
  224.         DMDisplayModeListIteratorProcPtr = ProcPtr;  { PROCEDURE DMDisplayModeListIterator(userData: UNIV Ptr; itemIndex: DMListIndexType; displaymodeInfo: DMDisplayModeListEntryPtr); }
  225.         DMNotificationUPP = UniversalProcPtr;
  226.         DMExtendedNotificationUPP = UniversalProcPtr;
  227.         DMComponentListIteratorUPP = UniversalProcPtr;
  228.         DMDisplayModeListIteratorUPP = UniversalProcPtr;
  229.  
  230.     const
  231.         uppDMNotificationProcInfo = $000000C0; { PROCEDURE (4 byte param); }
  232.         uppDMExtendedNotificationProcInfo = $00000EC0; { PROCEDURE (4 byte param, 2 byte param, 4 byte param); }
  233.         uppDMComponentListIteratorProcInfo = $00000FC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param); }
  234.         uppDMDisplayModeListIteratorProcInfo = $00000FC0; { PROCEDURE (4 byte param, 4 byte param, 4 byte param); }
  235.  
  236.     function NewDMNotificationProc (userRoutine: DMNotificationProcPtr): DMNotificationUPP;
  237.     {$IFC NOT GENERATINGCFM }
  238.     inline
  239.         $2E9F;
  240.     {$ENDC}
  241.  
  242.     function NewDMExtendedNotificationProc (userRoutine: DMExtendedNotificationProcPtr): DMExtendedNotificationUPP;
  243.     {$IFC NOT GENERATINGCFM }
  244.     inline
  245.         $2E9F;
  246.     {$ENDC}
  247.  
  248.     function NewDMComponentListIteratorProc (userRoutine: DMComponentListIteratorProcPtr): DMComponentListIteratorUPP;
  249.     {$IFC NOT GENERATINGCFM }
  250.     inline
  251.         $2E9F;
  252.     {$ENDC}
  253.  
  254.     function NewDMDisplayModeListIteratorProc (userRoutine: DMDisplayModeListIteratorProcPtr): DMDisplayModeListIteratorUPP;
  255.     {$IFC NOT GENERATINGCFM }
  256.     inline
  257.         $2E9F;
  258.     {$ENDC}
  259.  
  260.     procedure CallDMNotificationProc (var theEvent: AppleEvent; userRoutine: DMNotificationUPP);
  261.     {$IFC NOT GENERATINGCFM}
  262.     inline
  263.         $205F, $4E90;
  264.     {$ENDC}
  265.  
  266.     procedure CallDMExtendedNotificationProc (userData: univ Ptr; theMessage: INTEGER; notifyData: univ Ptr; userRoutine: DMExtendedNotificationUPP);
  267.     {$IFC NOT GENERATINGCFM}
  268.     inline
  269.         $205F, $4E90;
  270.     {$ENDC}
  271.  
  272.     procedure CallDMComponentListIteratorProc (userData: univ Ptr; itemIndex: DMListIndexType; componentInfo: DMComponentListEntryPtr; userRoutine: DMComponentListIteratorUPP);
  273.     {$IFC NOT GENERATINGCFM}
  274.     inline
  275.         $205F, $4E90;
  276.     {$ENDC}
  277.  
  278.     procedure CallDMDisplayModeListIteratorProc (userData: univ Ptr; itemIndex: DMListIndexType; displaymodeInfo: DMDisplayModeListEntryPtr; userRoutine: DMDisplayModeListIteratorUPP);
  279.     {$IFC NOT GENERATINGCFM}
  280.     inline
  281.         $205F, $4E90;
  282.     {$ENDC}
  283.  
  284.     function DMGetFirstScreenDevice (activeOnly: BOOLEAN): GDHandle;
  285.     {$IFC NOT GENERATINGCFM}
  286.     inline
  287.         $7000, $ABEB;
  288.     {$ENDC}
  289.     function DMGetNextScreenDevice (theDevice: GDHandle; activeOnly: BOOLEAN): GDHandle;
  290.     {$IFC NOT GENERATINGCFM}
  291.     inline
  292.         $7001, $ABEB;
  293.     {$ENDC}
  294.     procedure DMDrawDesktopRect (var globalRect: Rect);
  295.     {$IFC NOT GENERATINGCFM}
  296.     inline
  297.         $7002, $ABEB;
  298.     {$ENDC}
  299.     procedure DMDrawDesktopRegion (globalRgn: RgnHandle);
  300.     {$IFC NOT GENERATINGCFM}
  301.     inline
  302.         $7003, $ABEB;
  303.     {$ENDC}
  304.     function DMBeginConfigureDisplays (var displayState: Handle): OSErr;
  305.     {$IFC NOT GENERATINGCFM}
  306.     inline
  307.         $303C, $0206, $ABEB;
  308.     {$ENDC}
  309.     function DMEndConfigureDisplays (displayState: Handle): OSErr;
  310.     {$IFC NOT GENERATINGCFM}
  311.     inline
  312.         $303C, $0207, $ABEB;
  313.     {$ENDC}
  314.     function DMAddDisplay (newDevice: GDHandle; driver: INTEGER; mode: LONGINT; reserved: LONGINT; displayID: LONGINT; displayComponent: Component; displayState: Handle): OSErr;
  315.     {$IFC NOT GENERATINGCFM}
  316.     inline
  317.         $303C, $0D08, $ABEB;
  318.     {$ENDC}
  319.     function DMMoveDisplay (moveDevice: GDHandle; x: INTEGER; y: INTEGER; displayState: Handle): OSErr;
  320.     {$IFC NOT GENERATINGCFM}
  321.     inline
  322.         $303C, $0609, $ABEB;
  323.     {$ENDC}
  324.     function DMDisableDisplay (disableDevice: GDHandle; displayState: Handle): OSErr;
  325.     {$IFC NOT GENERATINGCFM}
  326.     inline
  327.         $303C, $040A, $ABEB;
  328.     {$ENDC}
  329.     function DMEnableDisplay (enableDevice: GDHandle; displayState: Handle): OSErr;
  330.     {$IFC NOT GENERATINGCFM}
  331.     inline
  332.         $303C, $040B, $ABEB;
  333.     {$ENDC}
  334.     function DMRemoveDisplay (removeDevice: GDHandle; displayState: Handle): OSErr;
  335.     {$IFC NOT GENERATINGCFM}
  336.     inline
  337.         $303C, $040C, $ABEB;
  338.     {$ENDC}
  339.     function DMSetMainDisplay (newMainDevice: GDHandle; displayState: Handle): OSErr;
  340.     {$IFC NOT GENERATINGCFM}
  341.     inline
  342.         $303C, $0410, $ABEB;
  343.     {$ENDC}
  344.     function DMSetDisplayMode (theDevice: GDHandle; mode: LONGINT; var depthMode: LONGINT; reserved: LONGINT; displayState: Handle): OSErr;
  345.     {$IFC NOT GENERATINGCFM}
  346.     inline
  347.         $303C, $0A11, $ABEB;
  348.     {$ENDC}
  349.     function DMCheckDisplayMode (theDevice: GDHandle; mode: LONGINT; depthMode: LONGINT; var switchFlags: LONGINT; reserved: LONGINT; var modeOk: BOOLEAN): OSErr;
  350.     {$IFC NOT GENERATINGCFM}
  351.     inline
  352.         $303C, $0C12, $ABEB;
  353.     {$ENDC}
  354.     function DMGetDeskRegion (var desktopRegion: RgnHandle): OSErr;
  355.     {$IFC NOT GENERATINGCFM}
  356.     inline
  357.         $303C, $0213, $ABEB;
  358.     {$ENDC}
  359.     function DMRegisterNotifyProc (notificationProc: DMNotificationUPP; whichPSN: ProcessSerialNumberPtr): OSErr;
  360.     {$IFC NOT GENERATINGCFM}
  361.     inline
  362.         $303C, $0414, $ABEB;
  363.     {$ENDC}
  364.     function DMRemoveNotifyProc (notificationProc: DMNotificationUPP; whichPSN: ProcessSerialNumberPtr): OSErr;
  365.     {$IFC NOT GENERATINGCFM}
  366.     inline
  367.         $303C, $0415, $ABEB;
  368.     {$ENDC}
  369.     function DMQDIsMirroringCapable (var qdIsMirroringCapable: BOOLEAN): OSErr;
  370.     {$IFC NOT GENERATINGCFM}
  371.     inline
  372.         $303C, $0216, $ABEB;
  373.     {$ENDC}
  374.     function DMCanMirrorNow (var canMirrorNow: BOOLEAN): OSErr;
  375.     {$IFC NOT GENERATINGCFM}
  376.     inline
  377.         $303C, $0217, $ABEB;
  378.     {$ENDC}
  379.     function DMIsMirroringOn (var isMirroringOn: BOOLEAN): OSErr;
  380.     {$IFC NOT GENERATINGCFM}
  381.     inline
  382.         $303C, $0218, $ABEB;
  383.     {$ENDC}
  384.     function DMMirrorDevices (gD1: GDHandle; gD2: GDHandle; displayState: Handle): OSErr;
  385.     {$IFC NOT GENERATINGCFM}
  386.     inline
  387.         $303C, $0619, $ABEB;
  388.     {$ENDC}
  389.     function DMUnmirrorDevice (gDevice: GDHandle; displayState: Handle): OSErr;
  390.     {$IFC NOT GENERATINGCFM}
  391.     inline
  392.         $303C, $041A, $ABEB;
  393.     {$ENDC}
  394.     function DMGetNextMirroredDevice (gDevice: GDHandle; var mirroredDevice: GDHandle): OSErr;
  395.     {$IFC NOT GENERATINGCFM}
  396.     inline
  397.         $303C, $041B, $ABEB;
  398.     {$ENDC}
  399.     function DMBlockMirroring: OSErr;
  400.     {$IFC NOT GENERATINGCFM}
  401.     inline
  402.         $701C, $ABEB;
  403.     {$ENDC}
  404.     function DMUnblockMirroring: OSErr;
  405.     {$IFC NOT GENERATINGCFM}
  406.     inline
  407.         $701D, $ABEB;
  408.     {$ENDC}
  409.     function DMGetDisplayMgrA5World (var dmA5: Ptr): OSErr;
  410.     {$IFC NOT GENERATINGCFM}
  411.     inline
  412.         $303C, $021E, $ABEB;
  413.     {$ENDC}
  414.     function DMGetDisplayIDByGDevice (displayDevice: GDHandle; var displayID: DisplayIDType; failToMain: BOOLEAN): OSErr;
  415.     {$IFC NOT GENERATINGCFM}
  416.     inline
  417.         $303C, $051F, $ABEB;
  418.     {$ENDC}
  419.     function DMGetGDeviceByDisplayID (displayID: DisplayIDType; var displayDevice: GDHandle; failToMain: BOOLEAN): OSErr;
  420.     {$IFC NOT GENERATINGCFM}
  421.     inline
  422.         $303C, $0520, $ABEB;
  423.     {$ENDC}
  424.     function DMSetDisplayComponent (theDevice: GDHandle; displayComponent: Component): OSErr;
  425.     {$IFC NOT GENERATINGCFM}
  426.     inline
  427.         $303C, $0421, $ABEB;
  428.     {$ENDC}
  429.     function DMGetDisplayComponent (theDevice: GDHandle; var displayComponent: Component): OSErr;
  430.     {$IFC NOT GENERATINGCFM}
  431.     inline
  432.         $303C, $0422, $ABEB;
  433.     {$ENDC}
  434.     function DMNewDisplay (var newDevice: GDHandle; driverRefNum: INTEGER; mode: LONGINT; reserved: LONGINT; displayID: DisplayIDType; displayComponent: Component; displayState: Handle): OSErr;
  435.     {$IFC NOT GENERATINGCFM}
  436.     inline
  437.         $303C, $0D23, $ABEB;
  438.     {$ENDC}
  439.     function DMDisposeDisplay (disposeDevice: GDHandle; displayState: Handle): OSErr;
  440.     {$IFC NOT GENERATINGCFM}
  441.     inline
  442.         $303C, $0424, $ABEB;
  443.     {$ENDC}
  444.     function DMResolveDisplayComponents: OSErr;
  445.     {$IFC NOT GENERATINGCFM}
  446.     inline
  447.         $7025, $ABEB;
  448.     {$ENDC}
  449.     function DMRegisterExtendedNotifyProc (notifyProc: DMExtendedNotificationUPP; notifyUserData: univ Ptr; nofifyOnFlags: INTEGER; whichPSN: ProcessSerialNumberPtr): OSErr;
  450.     {$IFC NOT GENERATINGCFM}
  451.     inline
  452.         $303C, $07EF, $ABEB;
  453.     {$ENDC}
  454.     function DMRemoveExtendedNotifyProc (notifyProc: DMExtendedNotificationUPP; notifyUserData: univ Ptr; whichPSN: ProcessSerialNumberPtr; removeFlags: INTEGER): OSErr;
  455.     {$IFC NOT GENERATINGCFM}
  456.     inline
  457.         $303C, $0726, $ABEB;
  458.     {$ENDC}
  459.     function DMNewAVPanelList (displayID: DisplayIDType; panelType: ResType; minimumFidelity: DMFidelityType; panelListFlags: LONGINT; reserved: LONGINT; var thePanelCount: DMListIndexType; var thePanelList: DMListType): OSErr;
  460.     {$IFC NOT GENERATINGCFM}
  461.     inline
  462.         $303C, $0C27, $ABEB;
  463.     {$ENDC}
  464.     function DMNewAVEngineList (displayID: DisplayIDType; engineType: ResType; minimumFidelity: DMFidelityType; engineListFlags: LONGINT; reserved: LONGINT; var engineCount: DMListIndexType; var engineList: DMListType): OSErr;
  465.     {$IFC NOT GENERATINGCFM}
  466.     inline
  467.         $303C, $0C28, $ABEB;
  468.     {$ENDC}
  469.     function DMNewAVDeviceList (deviceType: ResType; deviceListFlags: LONGINT; reserved: LONGINT; var deviceCount: DMListIndexType; var deviceList: DMListType): OSErr;
  470.     {$IFC NOT GENERATINGCFM}
  471.     inline
  472.         $303C, $0A29, $ABEB;
  473.     {$ENDC}
  474.     function DMNewAVPortListByPortType (subType: ResType; portListFlags: LONGINT; reserved: LONGINT; var devicePortCount: DMListIndexType; var theDevicePortList: DMListType): OSErr;
  475.     {$IFC NOT GENERATINGCFM}
  476.     inline
  477.         $303C, $0A2A, $ABEB;
  478.     {$ENDC}
  479.     function DMGetIndexedComponentFromList (panelList: DMListType; itemIndex: DMListIndexType; reserved: LONGINT; listIterator: DMComponentListIteratorUPP; userData: univ Ptr): OSErr;
  480.     {$IFC NOT GENERATINGCFM}
  481.     inline
  482.         $303C, $0A2B, $ABEB;
  483.     {$ENDC}
  484.     function DMDisposeList (panelList: DMListType): OSErr;
  485.     {$IFC NOT GENERATINGCFM}
  486.     inline
  487.         $303C, $022C, $ABEB;
  488.     {$ENDC}
  489.     function DMGetNameByAVID (theID: AVIDType; nameFlags: LONGINT; var name: Str255): OSErr;
  490.     {$IFC NOT GENERATINGCFM}
  491.     inline
  492.         $303C, $062D, $ABEB;
  493.     {$ENDC}
  494.     function DMNewAVIDByPortComponent (thePortComponent: Component; portKind: ResType; reserved: LONGINT; var newID: AVIDType): OSErr;
  495.     {$IFC NOT GENERATINGCFM}
  496.     inline
  497.         $303C, $082E, $ABEB;
  498.     {$ENDC}
  499.     function DMGetPortComponentByAVID (thePortID: DisplayIDType; var thePortComponent: Component; var theDesciption: ComponentDescription; var thePortKind: ResType): OSErr;
  500.     {$IFC NOT GENERATINGCFM}
  501.     inline
  502.         $303C, $082F, $ABEB;
  503.     {$ENDC}
  504.     function DMSendDependentNotification (notifyType: ResType; notifyClass: ResType; displayID: AVIDType; notifyComponent: ComponentInstance): OSErr;
  505.     {$IFC NOT GENERATINGCFM}
  506.     inline
  507.         $303C, $0A30, $ABEB;
  508.     {$ENDC}
  509.     function DMDisposeAVComponent (theAVComponent: Component): OSErr;
  510.     {$IFC NOT GENERATINGCFM}
  511.     inline
  512.         $303C, $0231, $ABEB;
  513.     {$ENDC}
  514.     function DMSaveScreenPrefs (reserved1: LONGINT; saveFlags: LONGINT; reserved2: LONGINT): OSErr;
  515.     {$IFC NOT GENERATINGCFM}
  516.     inline
  517.         $303C, $0632, $ABEB;
  518.     {$ENDC}
  519.     function DMNewAVIDByDeviceComponent (theDeviceComponent: Component; portKind: ResType; reserved: LONGINT; var newID: DisplayIDType): OSErr;
  520.     {$IFC NOT GENERATINGCFM}
  521.     inline
  522.         $303C, $0833, $ABEB;
  523.     {$ENDC}
  524.     function DMNewAVPortListByDeviceAVID (theID: AVIDType; minimumFidelity: DMFidelityType; portListFlags: LONGINT; reserved: LONGINT; var devicePortCount: DMListIndexType; var theDevicePortList: DMListType): OSErr;
  525.     {$IFC NOT GENERATINGCFM}
  526.     inline
  527.         $303C, $0C34, $ABEB;
  528.     {$ENDC}
  529.     function DMGetDeviceComponentByAVID (theDeviceID: AVIDType; var theDeviceComponent: Component; var theDesciption: ComponentDescription; var theDeviceKind: ResType): OSErr;
  530.     {$IFC NOT GENERATINGCFM}
  531.     inline
  532.         $303C, $0835, $ABEB;
  533.     {$ENDC}
  534.     function DMNewDisplayModeList (displayID: DisplayIDType; modeListFlags: LONGINT; reserved: LONGINT; var thePanelCount: DMListIndexType; var thePanelList: DMListType): OSErr;
  535.     {$IFC NOT GENERATINGCFM}
  536.     inline
  537.         $303C, $0A36, $ABEB;
  538.     {$ENDC}
  539.     function DMGetIndexedDisplayModeFromList (panelList: DMListType; itemIndex: DMListIndexType; reserved: LONGINT; listIterator: DMDisplayModeListIteratorUPP; userData: univ Ptr): OSErr;
  540.     {$IFC NOT GENERATINGCFM}
  541.     inline
  542.         $303C, $0A37, $ABEB;
  543.     {$ENDC}
  544.     function DMGetGraphicInfoByAVID (theID: AVIDType; var theAVPcit: PicHandle; var theAVIconSuite: Handle; var theAVLocation: AVLocationRec): OSErr;
  545.     {$IFC NOT GENERATINGCFM}
  546.     inline
  547.         $303C, $0838, $ABEB;
  548.     {$ENDC}
  549.     function DMGetAVPowerState (theID: AVIDType; getPowerState: AVPowerStatePtr; reserved1: LONGINT): OSErr;
  550.     {$IFC NOT GENERATINGCFM}
  551.     inline
  552.         $303C, $0839, $ABEB;
  553.     {$ENDC}
  554.     function DMSetAVPowerState (theID: AVIDType; setPowerState: AVPowerStatePtr; powerFlags: LONGINT; displayState: Handle): OSErr;
  555.     {$IFC NOT GENERATINGCFM}
  556.     inline
  557.         $303C, $083A, $ABEB;
  558.     {$ENDC}
  559.     function DMGetDeviceAVIDByPortAVID (portAVID: AVIDType; var deviceAVID: AVIDType): OSErr;
  560.     {$IFC NOT GENERATINGCFM}
  561.     inline
  562.         $303C, $043B, $ABEB;
  563.     {$ENDC}
  564.     function DMGetEnableByAVID (theAVID: AVIDType; var isAVIDEnabledNow: BOOLEAN; var canChangeEnableNow: BOOLEAN): OSErr;
  565.     {$IFC NOT GENERATINGCFM}
  566.     inline
  567.         $303C, $063C, $ABEB;
  568.     {$ENDC}
  569.     function DMSetEnableByAVID (theAVID: AVIDType; doEnable: BOOLEAN; displayState: Handle): OSErr;
  570.     {$IFC NOT GENERATINGCFM}
  571.     inline
  572.         $303C, $053D, $ABEB;
  573.     {$ENDC}
  574.     function DMGetDisplayMode (theDevice: GDHandle; switchInfo: VDSwitchInfoPtr): OSErr;
  575.     {$IFC NOT GENERATINGCFM}
  576.     inline
  577.         $303C, $043E, $ABEB;
  578.     {$ENDC}
  579.  
  580. { $ALIGN RESET}
  581. { $POP}
  582.  
  583. {$ENDC}
  584.  {__DISPLAYS__}
  585.  
  586. implementation
  587. end.
  588.